class code1 {
    //两数组之和（无序）

    //1.暴力 ->二分（要排序）-》双指针（时间复杂度没变化）
    //2.hash(开始就直接全部加入) -》需要判断下表是否相同，以免重复
    //3.hash优化(边比遍历边加入) -》不用判断重复，因为还没加入map
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map = new HashMap<>();

        for(int i=0;i<nums.length;i++) {
            int y = target - nums[i];

            if(map.containsKey(y)) {
                return new int[]{i,map.get(y)};
            } else {
                map.put(nums[i],i);
            }
        }
        return new int[]{-1,-1};
    }
}